查看原文
其他

Oracle 12c 新特性之: Oracle Data Redaction

张乐奕 云和恩墨 2019-12-13


张乐奕

云和恩墨副总经理,Oracle ACE 总监,ACOUG 联合创始人


1什么是 Oracle Data Redaction


不确认正式的中文翻译是什么,我翻译为数据改写。这是一项在 12c 中出现的 Oracle 高级安全新组件,其作用是限制 SQL 语句的返回结果样式,对于特定的用户可以限制某些字段显示被自动改写过的值。这是一项非常有用的安全功能,而在 12c 之前如果要实现相同的功能,可能需要创建特定的视图,或者在存储到数据库的时候就用加密算法进行加密。而 12c 的数据改写功能则在最后数据返回到客户端的前一刻将数据改写,这并不会影响到数据真实的存储。看一个简单的例子就明白了。


原本存储的数据记录如下:




在设置完 Data Redaction 之后,再次执行相同的语句,可以看到有隐私性质的列-社会保障号被遮盖了,只显示最后4位,这就实现了安全的目的。



2如何设置 Oracle Data Redaction


设置用户的合适权限,由于 Oracle Redaction 对于 DBA 用户不起效果,因此需要将 DBA 角色收回。




创建测试环境,包括测试表和测试数据。




Oracle Redaction 针对单张表的某个字段进行设置,分别通过 ADD_POLICY 存储过程的 object_name 和 column_name 来控制;Redaction 有多种类型,第一种为 FULL,也就是完全改写,对于字符类型的字段将改写为一个空格,对于数字类型的字段改写为 0,对于日期类型的字段改写为 2001-01-01,类型通过 function_type 参数来控制。




Redaction 的第二种类型是 RANDOM,对于字符类型的字段将改写为随机字符,对于数字类型的字段改写为具有相同长度的随机数字,对于日期类型的字段改写为随机日期(永远不会跟真实日期相同)。




Redaction 的第三种类型是 PARTIAL,将改写为按照 function_parameters 参数指定的格式。




3如何精细化设置哪些用户才启用数据改写


通过 expression 参数设置,比如如下所示,所有不是 KAMUS 的用户都启用在 EMPLOYEES.SOCIAL_SECURITY 字段上的数据改写,而如果是 KAMUS 用户进行检索,则还是返回真实的数据。




expression 参数非常灵活,通过此参数可以使 Data Redaction 发挥巨大的作用。expression 参数可选值如下图所示。



4如何增加数据改写策略


通过 DBMS_REDACT.ALTER_POLICY 存储过程可以增加多个字段的数据改写策略,比如下例,增加在 SALARY 字段上的全数据改写。



5数据改写到底是发生在哪一阶段,有哪些限制?




------ The End


如何加入云和恩墨大讲堂微信群

搜索盖国强(Eygle)微信号:eeygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。



云和恩墨
数据驱动,成就未来。整合业界顶尖的技术与合作伙伴资源,围绕数据及相关领域,提供解决方案和专业服务。业务架构电子渠道(网络销售)分析系统、数据治理IT基础架构分布式存储解决方案数据架构Oracle DB2 MySQL NoSQL专项服务:架构/安全/容灾/优化/整合/升级/迁移运维服务:运维服务  代维服务人才培养:个人认证  企业内训软件产品:工具软件(SQL 审核、监控、数据恢复)应用架构应用软件开发:数据建模 | SQL审核和优化 | 中间件服务

恩墨学院

恩墨学院是云和恩墨(北京)信息技术有限公司旗下的培训事业部,创业数年专注于数据库认证、技能培训,以专业的讲师塑造品牌,以专业的训练保证就业,目前已经发展成为国内数据库领域培训领导品牌。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存